$(function () {
    let layer = layui.layer

    //需求1:初始化文章分类列表
    initArtCateList()
    function initArtCateList() {
        axios({
            method: 'GET',
            url: '/my/article/cates',
        }).then(res => {
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            //渲染
            let arr = []
            //定义一个变量,做序号,
            let index = 0
            res.data.data.forEach((ele) => {
                //console.log(ele)
                index++
                arr.push(`
                <tr>
                   <td>${index}</td>
                   <td>${ele.name}</td>
                   <td>${ele.alias}</td>
                   <td>
                     <button data-id=${ele.Id} class="btn-edit layui-btn layui-btn layui-btn-xs">编辑</button>
                     <button data-id=${ele.Id}
                       class="btn-delete layui-btn layui-btn layui-btn-xs layui-btn-danger"
                     >
                       删除
                     </button>
                   </td>
                </tr>
                `)
            })
            //循环完毕赋值渲染
            $('tbody').empty().html(arr.join(''))
        })
    }
    //需求2:点击添加,弹出对话框
    let indexAdd = null
    $("#btnAdd").on('click', function () {
        indexAdd = layer.open({
            type: 1,
            title: '添加文章分类',
            area: ['500px', '300px'],
            content: `
            <form class="layui-form" action=""id='formAdd'>
            <div class="layui-form-item">
              <label class="layui-form-label">分类名称</label>
              <div class="layui-input-block">
                <input
                  type="text"
                  name="name"
                  required
                  lay-verify="required"
                  placeholder="请输入分类名称"
                  autocomplete="off"
                  class="layui-input"
                />
              </div>
            </div>
            <div class="layui-form-item">
              <label class="layui-form-label">分类别称</label>
              <div class="layui-input-block">
                <input
                  type="text"
                  name="alias"
                  required
                  lay-verify="required"
                  placeholder="请输入分类别名"
                  autocomplete="off"
                  class="layui-input"
                />
              </div>
            </div>
            <div class="layui-form-item">
              <div class="layui-input-block">
                <button class="layui-btn" lay-submit lay-filter="formDemo">
                  确认添加
                </button>
                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
              </div>
             </div>
            </form>
            `,
        });


    })

    //需求3:添加文章分类-事件委托
    $('body').on('submit', '#formAdd', function (e) {
        e.preventDefault()
        axios({
            method: 'POST',
            url: '/my/article/addcates',
            data: $(this).serialize(),
        }).then(res => {
            console.log(res)
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            layer.msg(res.data.message)
            layer.close(indexAdd)
            initArtCateList()
        })

    })

    //需求4: 点击按钮,展示对话框-事件委托
    let indexEdit = null
    let form = layui.form
    $("tbody").on('click', '.btn-edit', function () {
        //给出弹窗
        indexEdit = layer.open({
            type: 1,
            title: '修改文章分类',
            area: ['500px', '300px'],
            content: `
            <form lay-filter='formEdit' class="layui-form" id='formEdit'>
            <input type="hidden" name="Id">
            <div class="layui-form-item">
              <label class="layui-form-label">分类名称</label>
              <div class="layui-input-block">
                <input
                  type="text"
                  name="name"
                  required
                  lay-verify="required"
                  placeholder="请输入分类名称"
                  autocomplete="off"
                  class="layui-input"
                />
              </div>
            </div>
            <div class="layui-form-item">
              <label class="layui-form-label">分类别称</label>
              <div class="layui-input-block">
                <input
                  type="text"
                  name="alias"
                  required
                  lay-verify="required"
                  placeholder="请输入分类别名"
                  autocomplete="off"
                  class="layui-input"
                />
              </div>
            </div>
            <div class="layui-form-item">
              <div class="layui-input-block">
                <button class="layui-btn" lay-submit lay-filter="formDemo">
                  确认修改
                </button>
                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
              </div>
             </div>
            </form>
            
            `
        })
        //需求5:展示当前的文章分类信息
        let id = $(this).attr('data-id')
        axios({
            method: 'GET',
            url: "/my/article/cates/" + id,
        }).then(res => {

            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            //展示
            form.val('formEdit', res.data.data)
        })
    })
    //需求5: 修改文章分类 - 事件委托 
    $("body").on('submit', '#formEdit', function (e) {
        e.preventDefault()
        axios({
            method: 'POST',
            url: '/my/article/updatecate',
            data: $(this).serialize(),
        }).then(res => {
            console.log(res.data)
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            layer.msg(res.data.message)
            //关闭对话
            layer.close(indexEdit)
            //刷新页面
            initArtCateList()
        })
    })

    //需求6: 删除功能 -事件委托 
    $("tbody").on('click', '.btn-delete', function () {
        let id = $(this).attr('data-id')
        //弹窗
        layer.confirm('确认删除么?', { icon: 3, title: '提示' }, function (index) {
            //do something
            axios({
                method: 'GET',
                url: "/my/article/deletecate/" + id,
            }).then(res => {
                if (res.data.status !== 0) {
                    return layer.msg(res.data.message)
                } layer.msg(res.data.message)
                //渲染删除后的页面
                initArtCateList()
            })

            layer.close(index);
        });

    })



})